package cn.cdeden.knowledge.controller.online.search;

import cn.cdeden.common.core.utils.page.TableDataInfo;
import cn.cdeden.knowledge.domain.dto.*;
import cn.cdeden.knowledge.domain.vo.FileAnalysisDataVo;
import cn.cdeden.knowledge.utils.SysConfigUtils;
import cn.cdeden.system.api.model.LoginUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 *
 *
 * @author username
 * @date 2024/4/24 14:12
 * @describe:  搜索统一接口方法
 **/
@Component
public abstract class SearchFilesInfo {

    @Autowired
    private SysConfigUtils jsonObject;

    public abstract TableDataInfo<FilesTree> searchInfo(SearchFilesInfoDto infoDto, Pageable pageable);


    /**
     * @Description // 查询该节点下的文件信息分页
     * @param query
     * @param userDto
     * @param pageable
     * @return com.cdyd.ecm.base.PageInfo<com.cdyd.ecm.tree.FilesTree>
     **/
    public abstract TableDataInfo<FilesTree> queryNodeFileInfoPage(PortalQueryParam query, LoginUser userDto, Pageable pageable);


    /**
     * @param query
     * @param userDto
     * @return java.util.List<com.cdyd.ecm.tree.FilesTree>
     * @author Yu.
     * @Description // 查询该节点下的文件信息
     * @Date 2024/8/13 10:42
     **/
    public abstract List<FilesTree> queryNodeFileInfo(PortalQueryParam query, LoginUser  userDto);


    /**
     * @Description // 获取文件格式 分类信息
     * @param
     * @return java.util.List<com.cdyd.ecm.sys.domain.dto.FileFormatSuffixDto>
     **/
    public List<FileFormatSuffixDto> getFileFormatInfo(){
        FileFormatDto fileFormatDto = jsonObject.getFileFormatDto();
        return fileFormatDto.getData();
//        return null;

    }


    public abstract List<FileAnalysisDataVo> getNewFileAnalysisData(Map<String, List<String>> resultMap);


}
